<?php
/*
轮询页
获取好友消息，系统消息
				sm:标准消息
				af:添加好友
				nw:新闻
				sy:系统消息
				gp:群消息
				gs:群系统消息
*/
set_time_limit(0);


include '../include/init.php';

//$users=explode(',',$_POST['us']);
$user=$_POST['u'];
//消息数组
$msg=array();
$uids=array();

$comet=new cometModel();
$usr=new userModel();
$frd=new frdModel();
//$sm=new sysmsgsModel();
//$afm=new addfrdmsgModel();
$af=new addfrdModel();
//轮询只收集单条数据

while(true)
{
	//判断用户是否在线
	if($usr->getStatus($user)==0||$usr->getStatus($user)==false)
	{
		die(json_encode(false));
	}

	
	//好友消息
	$amsg=$comet->readone($user);
	$isfrd=$frd->bothfrd($user,$amsg['fromid']);
	if($amsg!==false&&$isfrd>0)
	{
		$amsg['isfrd']=$isfrd;//查看我与发送者的关系
		
		$amsg['time']=Date('Y/m/d,H:i:s',$amsg['time']);
		$msg['cm']=$amsg;
		$comet->hasread($amsg['id']);
		//echo json_encode($msg);
		//exit;
	}

	
	//查看我发出的且对方已经处理的验证消息||或||我发出并修改为添加好友但对方没有接收到的验证信息
	$ame=$af->getmeone($user);
	if(!empty($ame))
	{
		$msg['verify']=$ame;
		
		//如果对方是同意我的验证，则把对方加到好友列表中
		$isfrd=$frd->bothfrd($user,$ame['toid']);
		//var_dump($isfrd);
		if($ame['isadd']==1&&($isfrd==0||$isfrd==3))
		{
			//sleep(1);
			$data=array();
			$data['frdname']=$ame['bakname'];
			$data['gid']=$ame['togrp'];
			$data['acc_to_space']=$ame['acc_to_space'];
			$data['frdid']=$ame['toid'];

			if($frd->add($user,$data))
			{
				//sleep(1);
				$isfrd=$frd->bothfrd($user,$ame['toid']);
				if(($isfrd==1||$isfrd==2)&&$ame['isread']==1)
				{
					//$msg['verify']=$ame;
					//var_dump('添加好友完成');
					//读取后将该消息设为完成
					$af->done($ame['id']);
				}
			}
		}
		else
		{
			//$msg['verify']=$ame;
			if(($isfrd==1||$isfrd==2)&&$ame['isread']==1)
			{
				//var_dump('已添加好友，直接略过');
				//读取后将该消息设为完成
				$af->done($ame['id']);
				//sleep(1);
			}
		}
		
		/*else
		{
			//读取后将该消息设为完成
			$af->done($ame['id']);
		}
		*/

		
	}




	//查看别人发给我的验证消息
	$am=$af->getone($user);
	if(!empty($am))
	{
		$isfrd=$frd->bothfrd($user,$am['ownid']);
		if($isfrd==1)//如果我已经添加其为好友，则不理会
		{
			//var_dump('1'.$isfrd);
			$af->doneread($am['id']);
		}
		//如果我已添加其为好友，而此信息是他添加我为好友，则将信息修改为同意
		else if($isfrd==2)
		{
			//var_dump('2'.$isfrd);
			$data['isadd']=1;
			$data['isread']=1;
			$af->updateone($am['id'],$data);
		}
		else
		{
			//var_dump('3'.$isfrd);
			//如果都没有关系，则返回此验证信息
			$am['type']='addfrd';
			$msg['sys']=$am;
			//读取后将该消息设置为已读
			$af->hasread($am['id']);
		}
		
	}












	if(count($msg)>0)
	{
		echo json_encode($msg);
		exit;
	}



	/*
	
	//收集添加好友信息
	
	$am=$afm->getone($user);
	if($am)
	{
		$msg['af']['type']='af';
		$msg['af']['addmsg']=$am;
	}
	



	//收集群系统消息

	//只要其中一个有消息都返回
	if($msg['m'])
	{
		
		echo json_encode($msg);
		exit;
	}
	*/
	sleep(1);
}
